import { PermissionAction } from '@supabase/shared-types/out/constants' import { useParams } from 'common' import { PageContainer } from 'ui-patterns/PageContainer' import { PageHeader, PageHeaderDescription, PageHeaderMeta, PageHeaderSummary, PageHeaderTitle, } from 'ui-patterns/PageHeader' import { PageSection, PageSectionContent } from 'ui-patterns/PageSection' import { GenericSkeletonLoader } from 'ui-patterns/ShimmeringLoader' import { ProtectionAuthSettingsForm } from '@/components/interfaces/Auth/ProtectionAuthSettingsForm/ProtectionAuthSettingsForm' import AuthLayout from '@/components/layouts/AuthLayout/AuthLayout' import DefaultLayout from '@/components/layouts/DefaultLayout' import NoPermission from '@/components/ui/NoPermission' import { UnknownInterface } from '@/components/ui/UnknownInterface' import { useAsyncCheckPermissions } from '@/hooks/misc/useCheckPermissions' import { useIsFeatureEnabled } from '@/hooks/misc/useIsFeatureEnabled' import type { NextPageWithLayout } from '@/types' const ProtectionPage: NextPageWithLayout = () => { const { ref } = useParams() const showAttackProtection = useIsFeatureEnabled('authentication:attack_protection') const { can: canReadAuthSettings, isSuccess: isPermissionsLoaded } = useAsyncCheckPermissions( PermissionAction.READ, 'custom_config_gotrue' ) if (!showAttackProtection) { return } if (isPermissionsLoaded && !canReadAuthSettings) { return } return ( <> Attack Protection Configure security settings to protect your project from attacks {!isPermissionsLoaded ? ( ) : ( )} ) } ProtectionPage.getLayout = (page) => ( {page} ) export default ProtectionPage